

#ifndef __CE_SCENE_H__
#define __CE_SCENE_H__

#include <cegfx/iqf.h>
#include <cegfx/cecamera.h>
#include <cegfx/ceclipper.h>
#include <cegfx/cenode.h>
#include <cegfx/cenodecollection.h>
#include <cegfx/cerendercontroller.h>
#include <cegfx/cesector.h>
#include <vector>

using std::vector;

class CE_GFX_API ceScene : public iBase
{
	IQF_DECLARATION;
private:

	ceUpdateEnv				updateEnv;

	vector<ceSector*>	sectors;
	

	ceRenderController*	controller;

	ceClipper						clipper;

	void Collect (ceClipper* clipper, bool update, ceNodePtr node);

public:
	ceScene ();
	~ceScene ();

	void AddSector (ceSector* sector);

	void Collect (ceCamera* camera, bool update, ceRenderController* controller);

	void Render (ceRenderController* controller, const iViewport* viewport);

};

#endif /* ! __CE_SCENE_H__ */ 
